package com.sino.dao;

import java.util.List;

import com.sino.bean.Acl;
import com.sino.bean.Entityrolerelation;
import com.sino.bean.Role;
import com.sino.bean.TModule;

public interface IAclDAO 
{
/**
 * 保存一个acl权限单位
 * @param acl
 */
 public void saveAcl(Acl acl);
 /**
  * 更新一个acl权限单位
  * @param acl
  */
 public void updateAcl(Acl acl);
 /**
  * 保存或更新一个acl权限单位
  * @param acl
  */
 public void saveOrUpdateAcl(Acl acl);
 /**
  * 删除一个acl权限单位
  * @param acl
  */
 public void delAcl(Acl acl);
 /**
  * 查询系统所有的模块
  * @return
  */
 public List<TModule> listAllModules();
 /**
  * 查询系统所有父模块
  * @return
  */
 public List<TModule> listAllParentModules();
 /**
  * 通过父模块id查找所有子模块
  * @param parentId
  * @return
  */
 public List<TModule> listAllChildModulesByParent(int parentId);
 /**
  * 查询一个角色被授予的所有模块权限
  * @param roleId
  * @return
  */
 public List<Acl> listModuleByRole(int roleId);
 /**
  * 查询一个模块被授予的所有角色
  * @param moduleId
  * @return
  */
 public List<Acl> listRoleByModule(int moduleId);
 /**
  * 通过模块id查找模块信息
  * @param id
  * @return
  */
 public TModule fidTModuleById(int id);
 /**
  * 通过角色id查找角色信息
  * @param id
  * @return
  */
 public Role findRoleById(int id);
 /**
  * 通过实体type和实体id查找一个实体所具有的所有角色
  * @param type
  * @param id
  * @return
  */
 public List<Entityrolerelation> listRoleByEntity(int type,int id);
}
